OpenCV Tutorials(二) cv::Mat图像遍历和算法性能测量 | 您所在的位置:网站首页 › opencv mat遍历 › OpenCV Tutorials(二) cv::Mat图像遍历和算法性能测量 |
文章目录
如何衡量算法的性能?如何遍历每一个图像的像素?1.高效的遍历方式2. 迭代器(安全)方法3.动态地址计算 cv::Mat::at() 函数4.查找表5.四种方式性能对比
总结
如何衡量算法的性能?
我们如何测量时间?OpenCV提供了两个简单的函数来实现cv::getTickCount()和cv::getTickFrequency()。第一个返回某个事件(比如自启动系统以来)中系统CPU的节拍数。第二个返回您的CPU在一秒内发出一个tick的次数。因此,测量两个操作之间的时间代码如下: double t = (double)getTickCount(); // do something ... t = ((double)getTickCount() - t)/getTickFrequency(); cout double t = (double)cv::getTickCount(); cv::MatIterator_ it, end; for( it = rgbImage.begin(), end = rgbImage.end(); it != end; ++it) { (*it)[0] = 255; (*it)[1] = 255; (*it)[2] = 255; } t = ((double)cv::getTickCount() - t) / cv::getTickFrequency()*1000; //获得时间,单位是毫秒 cout p[i] = 0; } else if(i>=101 && i p[i] = 255; } }循环调用测试: cv::Mat dst; nums = 10; while (nums) { double t = (double)cv::getTickCount(); cv::LUT(matKernel, lookUpTable, dst); t = ((double)cv::getTickCount() - t) / cv::getTickFrequency()*1000; //获得时间,单位是毫秒 cout |
CopyRight 2018-2019 实验室设备网 版权所有 |